package md.specialEqp;

/**申请单：状态；
 * 嵌套的子{孙}流程：接收申请可签署协议--》{ 协议审核--》{ 收费金额计算} }+ 签字生效受理完成[没达成撤销的需要处理已经预生成的任务删除?]。
 */

public enum RequestSta_Enum {
    /**新的或重新编制,  申请单正在编辑中。 退回到了编制再修改数据的？
     * 创建人可修改。其他人不能修改本实体。
     * */
    INIT,

    /**提交审核； 申请人已经提交申请单了，申请人不能做修改数据了，等候结果。
     * 交付流转， 窗口收单受理人和创建人可修改，审核人和最终任务责任人不可修改本实体。
     * 3层次中间状态统一算作SUBMIT状态；依赖zeebe临时状态数据来判定具体节点。
     * */
    SUBMIT,

    /**审核完成
     * 【怪】审核人员审核环节都结束了。
     * 最后一个关口审核{有结论的时刻}结束了，中间2个过渡级别审核的不算，还是统一算作SUBMIT状态。
     * 审核结束不一定立刻能执行业务代码，无法顺利业务完成：报错的?。
     * ？最后一关审核当中？？？还是依赖zeebe临时状态数据来判定更妥。
     * */
    CHECK,

    /**基本完成: 需要等待外部系统，否则必须进入END?    #?也可能未能实际成功完成业务动作的(有提示信息的，没法准确区分失败或真的算结束):-->尽量不要等！。
     * 业务授权作业已经执行完毕，但是提交给外部监察平台的后续功能执行要等待监察反馈结果信息。
     * 等待外部系统发起的消息应答？或其它查询事情完结标记？ 然后额外操作本实体Request.状态：把FIN推进到END；超时时间来自Request.mdays。
     * 不需要等待外部平台回答的，可直接省略跳入END；
     * */
    FIN,

    /**已结束
     * 审批通过的而且申请单执行完结，申请单的语义结束，或审批通不过 被最终否决无法最后审批通过的也是，审批不通过而结束的。
     * 申请单生命周期结束。也不要立刻删除旧数据。
     * 已经获知外部监察平台的反馈信息了，或者超设定期限了。
     审批通过后，可进入中止监检通知书链接，也是END的，也可打印发放
     * 被审批人直接否决的提前结束流程的也是这；
     * */
    END,

    /**取消，假如主动删除取消的也不一定立刻物理删除。
     * 等待物理上删除申请单，
     * 历史数据可删除掉了。
     * 非管理员不能修改，管理员只能批量删除实体。
     * */
    CANCEL;
}

